//axios 基础的封装
import axios from 'axios'
import { ElMessage } from 'element-plus'
import 'element-plus/theme-chalk/el-message.css'
import router from '@/router'
import { useUserStore } from '@/stores/use'
// axios.create() 创建一个axios实例
const httpInstance= axios.create({
    baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',
    timeout:5000
})
//拦截器
// axios请求拦截器
httpInstance.interceptors.request.use(config => {
  //从pinia获取token数据
const userStore = useUserStore()
  //按照后端要求拼接数据
const token =userStore.userInfo.token
if(token){
  config.headers.Authorization =`Bearer ${token}`

  }
  //返回配置对象
  return config
}, e =>Promise.reject(e))

// axios响应式拦截器
httpInstance.interceptors.response.use(res => res.data, e => {
  //统一错误提示
  ElMessage({
type:'warning',
message:e.response.data.message
  })
  //401token失效处理
  //1.清除本地用户数据
  //2，跳转到登录页
if(e.response.status === 401){

  userStore.clearUserInfo()
  router.push('/login')
}

return Promise.reject(e)
})


export default httpInstance
